﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Coolzon.Realtime.Contracts.CommandData
{
    /// <summary>
    /// 响应操作指令
    /// </summary>
    public class RESPONSE_COMMAND
    {
        /// <summary>
        /// 0x01
        /// </summary>
        public class CONNECT
        {
            /// <summary>
            /// 登录 0xEF
            /// </summary>
            public const byte LOGIN = 0xEF;
            /// <summary>
            /// 登出 0xEE
            /// </summary>
            public const byte LOGOUT = 0xEE;
            /// <summary>
            /// 获取方案列表
            /// </summary>
            public const byte GETSOLUTIONLIST = 0xA1;
            /// <summary>
            /// 获取控制域列表
            /// </summary>
            public const byte GETDOMAINLIST = 0xA2;
            /// <summary>
            /// 进入控制域
            /// </summary>
            public const byte ENTERDOMAIN = 0xA3;
            /// <summary>
            /// 进入控制域
            /// </summary>
            public const byte CREATEDOMAIN = 0xA4;

            /// <summary>
            /// 离开控制域
            /// </summary>
            public const byte LEAVEDOMAIN = 0xA5;

            /// <summary>
            /// 同步显示状态
            /// </summary>
            public const byte SYNCVIEWSTATE = 0xA6;

            /// <summary>
            /// 重新连接
            /// </summary>
            public const byte RECONNECT = 0xA7;

            /// <summary>
            /// 获取控制域的实例模式
            /// </summary>
            public const byte GETDOMAININSTANCEMODE = 0xA8;

            /// <summary>
            /// 0xA9,更新终端的状态
            /// </summary>
            public const byte UPDATECLIENTSTATUS = 0xA9;
            /// <summary>
            /// 0xAA,检查终端的状态
            /// </summary>
            public const byte CHECKCLIENTSTATUS = 0xAA;

            /// <summary>
            /// 0xAB，上传视图状态
            /// </summary>
            public const byte UPLOADVIEWSTATE = 0xAB;

            /// <summary>
            /// 0xAC，获取视图状态
            /// </summary>
            public const byte GETVIEWSTATE = 0xAC;
        }

        /// <summary>
        /// 0x02
        /// </summary>
        public class SCENE
        {
            /// <summary>
            /// 打开场景
            /// </summary>
            public const byte OPENSCENE = 0x02;
            /// <summary>
            /// 关闭场景
            /// </summary>
            public const byte CLOSESCENE = 0x03;

            /// <summary>
            /// 滚动场景
            /// </summary>
            public const byte LOOPSCENE = 0x01;

            /// <summary>
            /// 事件
            /// </summary>
            public const byte MOUSEEVENT = 0x07;

            /// <summary>
            /// 互换区域
            /// </summary>
            public const byte SWAPAREA = 0x08;

            /// <summary>
            /// 修改属性的值，xml格式
            /// </summary>
            public const byte SETPROPERTYXMLSTRING = 0x09;

            /// <summary>
            /// 
            /// </summary>
            public const byte MAGNIFYSCENE = 0x0A;

            /// <summary>
            /// 显示激光笔
            /// </summary>
            public const byte SHOWLASERPOINTER = 0x0B;

            /// <summary>
            /// 组件事件
            /// </summary>
            public const byte PARTEVENT = 0x0C;
            /// <summary>
            /// 脚本网络事件
            /// </summary>
            public const byte SCRIPTNETEVENT = 0x0E;
        }

        public class TABCONTAINER
        {
            /// <summary>
            /// 选项卡切换
            /// </summary>
            public const byte CHANGE = 0x09;
        }

        public class SETTING
        {
            /// <summary>
            /// 修改控制状态
            /// </summary>
            public const byte CHANGECONTROLSTATE = 0x01;
            /// <summary>
            /// 重置场景
            /// </summary>
            public const byte RESETSCENE = 0x02;
            /// <summary>
            /// 重置方案
            /// </summary>
            public const byte RESETSOLUTION = 0x03;
        }

        public class SOLUTION
        {
            /// <summary>
            /// 切换方案
            /// </summary>
            public const byte SWITCH = 0x02;

            /// <summary>
            /// 方案加载完毕
            /// </summary>
            public const byte LOADINGFINISHED = 0x03;
        }
    }
}
